Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

277
Vistas
No se puede aplicar la indexación con [] a una expresión de tipo 'tipo'

¡todo el mundo! Soy nuevo en la programación así que espero su ayuda! Estoy tratando de regresar e indexar la matriz, pero no tengo idea de qué significa el error. Tengo este por primera vez.

esta es mi primera clase

 using System; using System.Linq; public class Group { private Student[] students; public Group(Student[] students) { if(students.Length < 5) { throw new ArgumentException("Incorrect group"); } this.students = students; } public int IndexOfMaxGrade() { Student[] sorted = students.OrderBy(c => c.grade).ToArray(); //int max = sorted[^1].grade; //foreach (var item in students) //{ // if(item.grade == max) // { // } //} return Array.IndexOf(students, sorted[^1].grade); } public int IndexOfMinGrade() { Student[] sorted = students.OrderBy(c => c.grade).ToArray(); return Array.IndexOf(students, sorted[0].grade); } }

y obtuve "No se puede aplicar la indexación con [] a una expresión de tipo 'tipo'" en este código (últimas 2 líneas)

 Group studentGroup; try { studentGroup = new Group(students.ToArray()); } catch (ArgumentException argumentException) { Console.WriteLine(argumentException.Message); return; } Console.WriteLine(studentGroup[studentGroup.IndexOfMinGrade()]); Console.WriteLine(studentGroup[studentGroup.IndexOfMaxGrade()]); } }
over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Si desea indexar un Group directamente, deberá proporcionar un indexador:

 public class Group { public Student this[int i]{ get { return students[i]; } set { students[i] = value; } } ...

Verá, su grupo tiene una matriz de estudiantes, pero eso no significa que sea, en sí mismo, directamente indexable como lo es una matriz.

cuando lo hiciste:

 Group studentGroup = ...

Más tarde intentó acceder a algo en algún índice dentro del Grupo:

 studentGroup[studentGroup.IndexOfMinGrade()]; //like this studentGroup[1]; //or like this, for example

C# no mirará su tipo de grupo y pensará "solo tiene un elemento de datos dentro, que es una matriz, por lo que permitiré que alguien coloque un especificador de índice como [1] junto a una instancia de un grupo, y yo' recuperaré el elemento desde dentro de la matriz interna"..

..solo dice "no se puede indexar un grupo"


Si agrega un indexador, entonces felices días. También podrías haber hecho algo como:

 class Group{ ... public Student GetStudentAt(int index){ return students[index]; }

Y luego llamó:

 Console.WriteLine(studentGroup.GetStudentAt(studentGroup.IndexOfMinGrade()));

Conceptualmente equivalente..

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda